package com.cv.platform.service.history;

import com.cv.framework.common.pojo.PageResult;
import com.cv.platform.controller.platform.history.vo.CvVideoDetailHistoryRespVO;
import com.cv.platform.controller.platform.history.vo.CvVideoHistoryRespVO;
import com.cv.platform.controller.platform.history.vo.CvVideoHistorySaveReqVO;
import com.cv.platform.controller.platform.history.vo.CvVideoHistoryReqVO;
import com.cv.platform.dal.es.index.video.CvVideoEntity;

import java.util.List;

/**
 * 视频播放历史记录业务层接口
 *
 * @author Charles_XDXD
 */
public interface CvVideoHistoryRecordService {

    /**
     * 根据用户编号获取所有视频播放历史记录
     *
     * @param userId 用户编号
     * @return 视频数据
     */
    List<CvVideoEntity> getAllVideoHistoryRecordByUserId(Long userId);

    /**
     * 获取用户视频播放记录
     *
     * @param videoId 视频编号
     * @return 视频播放记录
     */
    CvVideoDetailHistoryRespVO getVideoHistoryRecord(Long videoId);

    /**
     * 保存视频播放历史记录
     *
     * @param reqVO 保存请求对象
     */
    void saveVideoHistoryRecord(CvVideoHistorySaveReqVO reqVO);

    /**
     * 删除视频播放历史记录
     */
    void deleteVideoHistoryRecord(Long videoId);

    /**
     * 清空视频播放历史记录
     */
    void clearVideoHistoryRecord();

    /**
     * 分页视频播放历史记录
     *
     * @param reqVO 分页查询请求对象
     * @return 分页数据
     */
    PageResult<CvVideoHistoryRespVO> getVideoHistoryRecordPage(CvVideoHistoryReqVO reqVO);

}
